load the data
merged_progress_l <- read.csv(here("TimeSeries", "Inputs", "merged_progress_l.csv"))
merged_progress_w <- read.csv(here("TimeSeries", "Inputs", "merged_progress_w.csv")) %>%
mutate(satisfaction_base = recode(satisfaction_base, `8` = 4L)) # correct a typo on qualtric
factorScore_4f <- read.csv(here("Baseline", "Outputs", "factorScoreDf_4f.csv"))
factorScore_6f <- read.csv(here("Baseline", "Outputs", "factorScoreDf_6f.csv"))
baseline_goalRep <- read.csv(here("Baseline", "Outputs", "baseline_goalRap.csv"))
factorScore_4f_post <- read.csv(here("TimeSeries", "Inputs", "factorScoreDf_4f_post.csv"))
factorScore_6f_post <- read.csv(here("TimeSeries", "Inputs", "factorScoreDf_6f_post.csv"))
The progress was measured by “How much progress have you made towards this goal?”, and the scale ranged from 0:Haven’t started to 10: 100%.
For recurrence goals, progress was measured by “How often have you successfully maintained or achieved this goal?”, and the scale ranged from 0: never to 10: 100% of the time
As expected, the recurrence goals have the highest baseline progress and the long-term goals has the lowest baseline progress.
It is somewhat reasonable to rate 10 for recurrence goals but it’s weird to rate 10 on short-term or long-term goals.
describeBy(merged_progress_w$progress_base, merged_progress_w$goalType, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 210 | 2.609524 | 2.404124 | 2 | 2.279762 | 1.4826 | 0 | 10 | 10 | 1.0409641 | 0.2811677 | 0.1659003 |
| X12 | 2 | recurrance | 1 | 375 | 4.512000 | 3.105841 | 4 | 4.455150 | 4.4478 | 0 | 10 | 10 | 0.1191153 | -1.2631547 | 0.1603849 |
| X13 | 3 | short-term | 1 | 258 | 3.050388 | 2.813492 | 2 | 2.759615 | 2.9652 | 0 | 10 | 10 | 0.6974469 | -0.7904059 | 0.1751604 |
goals that were rated as 10 or NA on baseline progress. Most goals are recurrence goals except 3 goals, and I’ll exclude them in the analysis involving goal progress.
merged_progress_w %>%
filter(progress_base == 10 | is.na(progress_base)) %>%
ggplot(aes(x = goalType)) + geom_bar(fill = "orange") +
geom_text(stat='count', aes(label=..count..)) +
ggtitle("Goals that were rated as 10 or NA on baseline progress")
Exclude the three goals that are either long-term or short-term goals, and the two goals have no data on the baseline progress
merged_progress_clean_w <- merged_progress_w %>%
filter(progress_base != 10 | (progress_base == 10 & goalType == "recurrence"))
#write.csv(merged_progress_clean_w, here("TimeSeries", "Inputs", "merged_progress_clean_w.csv"), row.names = F)
A histogram of baseline goal progress by goal type:
Around 1/6 of the goals haven’t started and most of the goals are in progress. Both long term and short term goals are positively skewed and the distribution of recurrence goals are spread out
merged_progress_clean_w %>%
ggplot(aes(x = progress_base)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(0, 10, by = 1)) +
facet_grid(.~goalType) +
theme_classic()
25.6% of the variance of baseline progress is between-subject variance (each subject on average listed 3.43 goals)
mlm_baseProgress <- lmer(progress_base ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_baseProgress) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.256
## 2 Residual 0.744
The baseline satisfaction was measured by “How satisfied are you with your current progress?” on a 7-point scale. The average rating is below the mid point and short term goals have slightly higher satisfaction on the baseline progress. The ratings are positively skewed except for short-term goals, which center around 4-5.
describeBy(merged_progress_w$satisfaction_base, merged_progress_w$goalType, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 210 | 3.495238 | 1.856703 | 4 | 3.422619 | 1.4826 | 1 | 7 | 6 | 0.1012113 | -1.1321252 | 0.1281247 |
| X12 | 2 | recurrance | 1 | 377 | 3.612732 | 1.916792 | 4 | 3.544554 | 2.9652 | 1 | 7 | 6 | 0.1419506 | -1.1792056 | 0.0987198 |
| X13 | 3 | short-term | 1 | 258 | 3.833333 | 1.799085 | 4 | 3.822115 | 1.4826 | 1 | 7 | 6 | -0.0545068 | -0.9941478 | 0.1120061 |
merged_progress_clean_w %>%
ggplot(aes(x = satisfaction_base)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(0, 10, by = 1)) +
facet_grid(.~goalType) +
theme_classic()
33% of the variance in baseline satisfaction is attributed to between subject variance. It’s higher than baseline progress.
mlm_baseSat<- lmer(satisfaction_base ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_baseSat) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.331
## 2 Residual 0.669
The correlations between baseline progress and factor scores are weak except a positive correlation between progress at baseline and attainability from the 6-factor model. When comparing the 4-factor correlations and 6-factor correlations, we can see that the positive correlation between satisfaction and clarity from the 4-factor model can be mainly explained by the positive correlation between satisfaction and attainability.
# merge the factor score data with baseline progress
factorScore_4f_base <- factorScore_4f %>%
right_join(select(merged_progress_clean_w, MTurkCode, goal, progress_base, satisfaction_base), by = c("MTurkCode", "goal"))
# correlate the correlations
base_corr_f4 <- factorScore_4f_base %>%
select(Value: satisfaction_base) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(base_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), title = "correlations between 4-factor scores and DVs with all goals", mar=c(0,0,1,0))
Grouped by goal type: The correlations are mainly driven by long-term goals, which is interesting, because I would expect progress measure to be the least reliable for long-term goals at baseline
factorScore_4f_base %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_base, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between baseline progress and the 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.1150924 | 0.2325905 | 0.1159106 | -0.1219020 | 208 |
| recurrance | -0.0029060 | 0.1630253 | 0.0569149 | -0.0125356 | 357 |
| short-term | 0.0369130 | 0.0616977 | 0.0810676 | -0.1469216 | 257 |
The pattern is similar to those of baseline progress. Other than the positive correlation with clarity, baseline satisfaction also negatively correlate with consensus for short-term and long-term goals.
factorScore_4f_base %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_base, use = "pairwise.complete.obs")),
#mean_progress = mean(.x),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between baseline satisfaction and the 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.1482316 | 0.4396824 | -0.0053369 | -0.1729462 | 208 |
| recurrance | 0.0066383 | 0.2613195 | 0.0421846 | -0.0893055 | 357 |
| short-term | 0.0160314 | 0.2328494 | -0.0177376 | -0.2002122 | 257 |
Attainability seems to be the only factor correlate with both DVs.
# merge the factor score data with baseline progress
factorScore_6f_base <- factorScore_6f %>%
right_join(select(merged_progress_clean_w, MTurkCode, goal, progress_base, satisfaction_base), by = c("MTurkCode", "goal"))
# correlate the correlations
base_corr_f6 <- factorScore_6f_base %>%
select(Value: satisfaction_base) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(base_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Similar to the correlations with the 4-factor scores, correlations are mainly driven by long-term goals. After grouping based on types, at least the value and external factor don’t have a coefficient very close to 0 for long-term and short-term goals.
factorScore_6f_base %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_base, use = "pairwise.complete.obs")),
#mean_progress = mean(.x),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between baseline progress and the 6-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.1084669 | 0.1261821 | 0.2833614 | -0.1219020 | 0.1693360 | 0.1563704 | 208 |
| recurrance | 0.0239588 | 0.0728736 | 0.3324634 | -0.0125356 | 0.0204646 | 0.0203787 | 357 |
| short-term | 0.0255076 | 0.1035427 | 0.1845062 | -0.1469216 | -0.0427633 | 0.0678140 | 257 |
After grouping by goal types, value also positively correlates with baseline satisfaction among long-term goals and consensus negatively correlates with baseline satisfaction among short-term goals.
factorScore_6f_base %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_base, use = "pairwise.complete.obs")),
#mean_progress = mean(.x),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between baseline satisfaction and the 6-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.2211071 | -0.0207848 | 0.4714865 | -0.1729462 | 0.2350491 | 0.0771916 | 208 |
| recurrance | 0.0501813 | 0.0477123 | 0.3993433 | -0.0893055 | 0.0684624 | -0.0084719 | 357 |
| short-term | 0.0561781 | -0.0036350 | 0.3500232 | -0.2002122 | 0.0478256 | 0.0241128 | 257 |
At each follow-up, progress was measured by : “How much progress have you made out of the total progress you hope to make during this three-month period?” on a 11-point scale: 0: 0% 10: 100% 11: more than I expected. For long-term goals, we displayed both their goals and the planned progress for the 3-month period. For recurrence goals, the measure was identical to the baseline: “How often have you successfully maintained or achieved this goal?” on a 1-11 point scale.
Final progress was recoded from participants’ last completed follow-ups.
# convert monthly DVs to the final DVs
merged_progress_clean_w <- merged_progress_clean_w %>%
mutate(final_time = case_when( # record the time for their last progress
is.na(terminate_time) == FALSE ~ terminate_time,
is.na(terminate_time) == TRUE & is.na(status_F3) == FALSE ~ "F3",
is.na(terminate_time) == TRUE & is.na(status_F3) == TRUE & is.na(status_F2) ==F ~ "F2",
is.na(terminate_time) == TRUE & is.na(status_F3) == FALSE & is.na(status_F2) ==T & is.na(status_F1) ~ "F1"
),
miss_final = case_when( # record if they miss their last progress evaluation
is.na(terminate_time) == TRUE & is.na(status_F3) == TRUE ~ TRUE,
is.na(terminate_time) == F | is.na(status_F3) == F ~ FALSE),
all_progress = case_when( # record if they complete all three progress evaluations
is.na(progress_F1) == F & is.na(progress_F2) == F & is.na(progress_F3) == F ~ TRUE
)
) %>%
mutate(progress_final = case_when( # record
final_time == "F1" ~ progress_F1,
final_time == "F2" ~ progress_F2,
final_time == "F3" ~ progress_F3),
satisfaction_final = case_when(
final_time == "F1" ~ satisfaction_F1,
final_time == "F2" ~ satisfaction_F2,
final_time == "F3" ~ satisfaction_F3),
status_final = case_when(
final_time == "F1" ~ status_F1,
final_time == "F2" ~ status_F2,
final_time == "F3" ~ status_F3)
)
#write.csv(merged_progress_clean_w, here("TimeSeries", "Inputs", "merged_progress_clean_w.csv"), row.names = F)
Group by goal types: All above mid-point; short-term goals had the highest progress
describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$goalType, mat = T) %>%
kable(format = "html", escape = F, caption = "the final progress grouped by goal type") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 175 | 5.668571 | 3.353483 | 5 | 5.631206 | 4.4478 | 0 | 11 | 11 | 0.1378793 | -1.183877 | 0.2534995 |
| X12 | 2 | recurrance | 1 | 299 | 6.371238 | 3.277845 | 7 | 6.506224 | 2.9652 | 0 | 11 | 11 | -0.3711396 | -1.114367 | 0.1895627 |
| X13 | 3 | short-term | 1 | 217 | 6.852535 | 3.752333 | 8 | 7.114286 | 4.4478 | 0 | 11 | 11 | -0.3841217 | -1.350529 | 0.2547250 |
Group by the final status: This group validate the measure as completed goals had a mean rating slightly above 10 (100%) despite a few low ratings and abandoned goals had a very low progress ratings. Adjusted goals were a bit tricky. Here, it refers to goals that were adjusted at their last follow-ups, but goals that were adjusted in F1 or F2 were counted in other groups if the participants filled out the later follow-ups.
describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$status_final, mat = T) %>%
kable(format = "html", escape = F, caption = "the final progress grouped by the final status") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | abandoned | 1 | 79 | 1.822785 | 1.872606 | 1.0 | 1.553846 | 1.4826 | 0 | 11 | 11 | 1.9428156 | 5.7487366 | 0.2106846 |
| X12 | 2 | adjusted | 1 | 32 | 4.750000 | 2.651841 | 4.5 | 4.615385 | 2.2239 | 1 | 11 | 10 | 0.4423966 | -0.7136433 | 0.4687836 |
| X13 | 3 | completed | 1 | 150 | 10.073333 | 1.376196 | 10.0 | 10.358333 | 1.4826 | 1 | 11 | 10 | -2.9546312 | 12.9482159 | 0.1123659 |
| X14 | 4 | continued | 1 | 430 | 5.993023 | 2.947473 | 6.0 | 6.040698 | 2.9652 | 0 | 11 | 11 | -0.1288731 | -1.0409694 | 0.1421398 |
Group by the final time point: it’s hard to interpret this grouping because goals could be terminated early due to completion, abandoned or attrition.
describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$final_time, mat = T) %>%
kable(format = "html", escape = F, caption = "the final progress grouped by the final time point") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | F1 | 1 | 70 | 7.028571 | 4.475283 | 10 | 7.392857 | 1.4826 | 0 | 11 | 11 | -0.5349598 | -1.554401 | 0.5348986 |
| X12 | 2 | F2 | 1 | 78 | 6.884615 | 4.134055 | 9 | 7.171875 | 2.9652 | 0 | 11 | 11 | -0.4567948 | -1.482952 | 0.4680895 |
| X13 | 3 | F3 | 1 | 543 | 6.178637 | 3.205068 | 6 | 6.259770 | 4.4478 | 0 | 11 | 11 | -0.1599690 | -1.167550 | 0.1375426 |
A visualization of the final progress grouped by goal types and final status: the distribution make sense.
merged_progress_clean_w %>%
filter(status_final %in% c("abandoned", "completed", "continued")) %>%
ggplot(aes(x = progress_final)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(0, 10, by = 1)) +
facet_grid(status_final~goalType)
The percentage of variance that is attribute to the between-subject level is very similar to that in the baseline
mlm_finalProgress <- lmer(progress_final ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_finalProgress) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.229
## 2 Residual 0.771
At each follow-up, satisfaction measure was identical to the baseline: “How satisfied are you with this level of progress?” on a 7-point scale
Group by goal type:the ratings are similar across groups and all are slightly above the mid-point
describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$goalType, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 177 | 4.412429 | 2.106393 | 5 | 4.510490 | 2.9652 | 1 | 7 | 6 | -0.2065070 | -1.361718 | 0.1583262 |
| X12 | 2 | recurrance | 1 | 299 | 4.387960 | 2.217227 | 5 | 4.481328 | 2.9652 | 1 | 7 | 6 | -0.3935219 | -1.344571 | 0.1282256 |
| X13 | 3 | short-term | 1 | 217 | 4.705069 | 2.408631 | 6 | 4.874286 | 1.4826 | 1 | 7 | 6 | -0.4075068 | -1.509982 | 0.1635085 |
Group by the final status: This somewhat validate the satisfaction measure as abandoned goals had very low ratings and completed goals had very high ratings close to the max (7)
describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$status_final, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | abandoned | 1 | 79 | 1.734177 | 1.1402751 | 1 | 1.523077 | 0.0000 | 1 | 7 | 6 | 1.9582323 | 4.5135542 | 0.1282910 |
| X12 | 2 | adjusted | 1 | 32 | 3.406250 | 1.8466950 | 3 | 3.307692 | 1.4826 | 1 | 7 | 6 | 0.4565606 | -0.9688184 | 0.3264526 |
| X13 | 3 | completed | 1 | 152 | 6.703947 | 0.7791897 | 7 | 6.901639 | 0.0000 | 2 | 7 | 5 | -3.4437604 | 13.7478420 | 0.0632006 |
| X14 | 4 | continued | 1 | 430 | 4.300000 | 2.0576199 | 5 | 4.375000 | 2.9652 | 1 | 7 | 6 | -0.2929231 | -1.2527447 | 0.0992272 |
Group by the final time point: it’s hard to interpret this grouping without any interactions with other variables.
describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$final_time, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | F1 | 1 | 72 | 5.194444 | 2.412636 | 7 | 5.482759 | 0.0000 | 1 | 7 | 6 | -0.8303640 | -1.065512 | 0.2843319 |
| X12 | 2 | F2 | 1 | 78 | 4.641026 | 2.578504 | 6 | 4.781250 | 1.4826 | 1 | 7 | 6 | -0.3821869 | -1.662686 | 0.2919581 |
| X13 | 3 | F3 | 1 | 543 | 4.379374 | 2.166437 | 5 | 4.473563 | 2.9652 | 1 | 7 | 6 | -0.2924801 | -1.351993 | 0.0929707 |
Histograms: The distribution makes sense. Compared to the baseline, the distribution of long-term and recurrance goals shipted a bit to the right and that of short-term goals shifted a bit to the left.
merged_progress_clean_w %>%
filter(status_final %in% c("abandoned", "completed", "continued")) %>%
ggplot(aes(x = satisfaction_final)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(0, 10, by = 1)) +
facet_grid(status_final~goalType)
The between-subject variance dropped almost in half from the baseline
mlm_finalSatisfaction <- lmer(satisfaction_final ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_finalSatisfaction) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.157
## 2 Residual 0.843
These are unit factor scores generated from baseline goal representation ratings. I excluded goals that were adjusted at any follow-ups for the following correlations because they have another set of baseline ratings when they were adjusted.
# exclude goals that were adjusted at any follow-up
adjustedDf <- merged_progress_clean_w %>%
filter(status_F1 == "adjusted" | status_F2 == "adjusted" | status_F3 == "adjusted")
merged_progress_noAdj_w <- merged_progress_clean_w %>%
anti_join(adjustedDf, by = c("MTurkCode", "goal"))
# merge the factor score data with final progress
factorScore_4f_final <- factorScore_4f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_final, satisfaction_final, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f4 <- factorScore_4f_final %>%
select(Value: satisfaction_final) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Grouped by goal type: Other than the positive correlation between clarity and long-term goals, it seems like external also positively correlate with final progress among long-term goals
factorScore_4f_final %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.0798099 | 0.2455409 | 0.1773457 | -0.0857791 | 191 |
| recurrance | -0.0065610 | 0.2705278 | 0.1017856 | -0.0044487 | 321 |
| short-term | 0.0189629 | 0.1505325 | 0.0704906 | -0.1367095 | 230 |
# m1 <- lmer( progress_final ~ Value + External + Clarity + Consensus + (External | MTurkCode) + (Value | MTurkCode) + (Clarity | MTurkCode)
# + (Consensus | MTurkCode) + , REML = FALSE, data = factorScore_4f_final)
#
# summary(m1)
Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final progress.
factorScore_4f_final %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | -0.0557617 | 0.0103490 | 0.1772978 | -0.0430999 | 72 |
| completed | 0.0473502 | 0.2593008 | 0.0837601 | 0.0847953 | 149 |
| continued | -0.0465622 | 0.1925503 | 0.0293197 | -0.0840652 | 411 |
Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and they show very different pattern with the value and external factor.
factorScore_4f_final %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | 0.1021582 | 0.5190827 | 0.2310247 | 0.0746893 | 15 |
| abandoned | recurrance | -0.3235460 | -0.0618627 | 0.1500414 | -0.1038243 | 34 |
| abandoned | short-term | 0.0022003 | -0.2075267 | 0.0416277 | -0.1330731 | 23 |
| completed | long-term | 0.3331281 | 0.5013849 | -0.0428610 | 0.2203253 | 24 |
| completed | recurrance | 0.0248250 | 0.3598961 | 0.3021708 | 0.3256423 | 33 |
| completed | short-term | 0.1041296 | 0.2178525 | -0.0638972 | 0.0592227 | 92 |
| continued | long-term | -0.0029077 | 0.1612047 | 0.1459778 | -0.0828723 | 126 |
| continued | recurrance | -0.1583823 | 0.2822545 | -0.0256767 | -0.0890297 | 202 |
| continued | short-term | 0.1709174 | 0.0629432 | 0.0433456 | -0.1438661 | 83 |
Grouped by goal type: clarity positively correlate with all types of goals. The positive relation with external is mainly driven by long-term goals and the negative relations with consensus is maintly driven by short-term goals.
factorScore_4f_final %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.0706630 | 0.2717590 | 0.2180373 | -0.0972176 | 191 |
| recurrance | 0.0566417 | 0.3130473 | 0.1142455 | -0.0202069 | 321 |
| short-term | -0.0282487 | 0.2001764 | 0.0581799 | -0.1521106 | 230 |
Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final satisfaction and it’s probability due to the high correlation between final progress and final satisfaction.
factorScore_4f_final %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | -0.1243594 | -0.0856642 | 0.0396477 | -0.157041 | 72 |
| completed | 0.0637132 | 0.2813794 | 0.1143973 | 0.084618 | 149 |
| continued | -0.0030606 | 0.2614873 | 0.0774478 | -0.081828 | 411 |
Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and other than the positive correlation with clarity, continued long term goals also show a positive correlation with external.
factorScore_4f_final %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | -0.0495401 | 0.5518426 | 0.2847339 | 0.0682809 | 15 |
| abandoned | recurrance | -0.2486019 | -0.1303387 | 0.0053675 | -0.2601639 | 34 |
| abandoned | short-term | -0.2680728 | -0.4152209 | -0.5237324 | -0.4918749 | 23 |
| completed | long-term | 0.1054583 | 0.2654459 | 0.3172238 | 0.0905756 | 24 |
| completed | recurrance | 0.2168041 | 0.4328699 | 0.3720692 | 0.3438168 | 33 |
| completed | short-term | 0.0593019 | 0.3363293 | -0.1059065 | 0.0797538 | 92 |
| continued | long-term | 0.0511589 | 0.2429439 | 0.2034624 | -0.0719816 | 126 |
| continued | recurrance | -0.0584930 | 0.3373785 | 0.0170788 | -0.0824421 | 202 |
| continued | short-term | 0.0461368 | 0.2226712 | 0.0790476 | -0.1469375 | 83 |
Similar to the correlation patterns with the 4-factor scores, and by comparing the two matrix, we can see that the relationship with clarity showed above is mainly driven by the correlation with attainability.
# merge the factor score data with finalline progress
factorScore_6f_final <- factorScore_6f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_final, satisfaction_final, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f6 <- factorScore_6f_final %>%
select(Value: satisfaction_final) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Grouped by goal type: Other than the positive correlation with attainabililty and measurability, it seems like external also correlate with final progress among long-term goals, just weaker than the 4-factor scores.
factorScore_6f_final %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.1025325 | 0.1785094 | 0.3212135 | -0.0857791 | 0.2070156 | 0.0155654 | 191 |
| recurrance | 0.0254334 | 0.0981437 | 0.3547382 | -0.0044487 | 0.1847210 | 0.0348919 | 321 |
| short-term | 0.0614609 | 0.0619455 | 0.1729807 | -0.1367095 | 0.0925177 | -0.0755720 | 230 |
Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Attainability and measurability showed different pattern with completed and continued goals. External only show a positive relationship with the final progress among abandoned goals, which is very different from the external score from the 4-factor model.
factorScore_6f_final %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | -0.0939205 | 0.1887398 | 0.0510201 | -0.0430999 | -0.0055801 | 0.0883940 | 72 |
| completed | 0.0649029 | 0.0467095 | 0.1147510 | 0.0847953 | 0.3068886 | -0.0457009 | 149 |
| continued | -0.0224992 | 0.0380518 | 0.2887915 | -0.0840652 | 0.0958134 | -0.0110872 | 411 |
Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and they show different pattern with the value external and instrumentality factor.
factorScore_6f_final %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | 0.2714793 | 0.1901695 | 0.5428340 | 0.0746893 | 0.3433487 | -0.0568545 | 15 |
| abandoned | recurrance | -0.4714480 | 0.1286428 | -0.0243795 | -0.1038243 | -0.1661654 | 0.1792055 | 34 |
| abandoned | short-term | -0.1446688 | 0.1822120 | -0.2537147 | -0.1330731 | 0.0147166 | 0.1058125 | 23 |
| completed | long-term | 0.3037492 | -0.0512497 | 0.3056930 | 0.2203253 | 0.6800191 | 0.2011561 | 24 |
| completed | recurrance | 0.0579059 | 0.2499943 | 0.2573651 | 0.3256423 | 0.4572054 | 0.0264643 | 33 |
| completed | short-term | 0.1100380 | -0.0952298 | -0.0282253 | 0.0592227 | 0.1802615 | -0.0121524 | 92 |
| continued | long-term | 0.0142242 | 0.1657595 | 0.2913547 | -0.0828723 | 0.1000767 | -0.0016413 | 126 |
| continued | recurrance | -0.1021900 | -0.0192220 | 0.3758203 | -0.0890297 | 0.1920240 | -0.1144019 | 202 |
| continued | short-term | 0.1888990 | 0.0516192 | 0.0240297 | -0.1438661 | 0.0101284 | 0.0658734 | 83 |
Grouped by goal type: Compared with the correlations to the four-factor scores, the relationships with the clarity factor showed above are mainly driven by the positive relationship with attainability. Similar to the 4-factor scores, external also positively correlate wtih satisfaction among long-term goals.
factorScore_6f_final %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.1158567 | 0.1981086 | 0.3838465 | -0.0972176 | 0.1534074 | 0.0333609 | 191 |
| recurrance | 0.1036104 | 0.1019916 | 0.3854250 | -0.0202069 | 0.1858891 | 0.0321547 | 321 |
| short-term | 0.0254364 | 0.0385622 | 0.2673194 | -0.1521106 | 0.0708919 | -0.1022767 | 230 |
Grouped by final status: It’s interesting to see that the relationships between attainability and measurability reverse between continued goals and abandoned goals. However, the abandoned group doesn’t have a large sample size and the variation is restricted.
factorScore_6f_final %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | -0.1111103 | 0.0328193 | 0.0482816 | -0.157041 | -0.2451000 | 0.0061866 | 72 |
| completed | 0.1217496 | 0.0630056 | 0.2164957 | 0.084618 | 0.2502533 | -0.1038930 | 149 |
| continued | 0.0377619 | 0.0663716 | 0.3500055 | -0.081828 | 0.1105121 | -0.0046250 | 411 |
Grouped by goal type * final status: compared to the 4-factor correlations, the negative relationship between final satisfaction with values increased among continued recurrence goals and the positive relationship with external among continued long-term goals decreased, but both are still very weak.
factorScore_6f_final %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | 0.2714793 | 0.1901695 | 0.5428340 | 0.0746893 | 0.3433487 | -0.0568545 | 15 |
| abandoned | recurrance | -0.4714480 | 0.1286428 | -0.0243795 | -0.1038243 | -0.1661654 | 0.1792055 | 34 |
| abandoned | short-term | -0.1446688 | 0.1822120 | -0.2537147 | -0.1330731 | 0.0147166 | 0.1058125 | 23 |
| completed | long-term | 0.3037492 | -0.0512497 | 0.3056930 | 0.2203253 | 0.6800191 | 0.2011561 | 24 |
| completed | recurrance | 0.0579059 | 0.2499943 | 0.2573651 | 0.3256423 | 0.4572054 | 0.0264643 | 33 |
| completed | short-term | 0.1100380 | -0.0952298 | -0.0282253 | 0.0592227 | 0.1802615 | -0.0121524 | 92 |
| continued | long-term | 0.0142242 | 0.1657595 | 0.2913547 | -0.0828723 | 0.1000767 | -0.0016413 | 126 |
| continued | recurrance | -0.1021900 | -0.0192220 | 0.3758203 | -0.0890297 | 0.1920240 | -0.1144019 | 202 |
| continued | short-term | 0.1888990 | 0.0516192 | 0.0240297 | -0.1438661 | 0.0101284 | 0.0658734 | 83 |
# merge baseline variables with the cleaned datset
merged_progress_clean_w <- merged_progress_clean_w %>%
left_join(select(baseline_goalRep, -listNum, -total_goal, -goalType), by = c("MTurkCode", "goal"))
merged_progress_clean_w %>%
select(affordance: visibility, progress_final, progress_base) %>%
gather(item, value, -progress_final, -progress_base) %>%
nest(-item) %>%
mutate(fit = map(data, ~lm(progress_final ~ value + progress_base, data = .x)),
tidied = map(fit, tidy)) %>%
unnest(tidied) %>%
filter(term == "value") %>%
select(item, estimate, p.value) %>%
mutate_if(is.numeric, round, 3) %>%
arrange(p.value) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | estimate | p.value |
|---|---|---|
| attainability | 0.460 | 0.000 |
| measurability | 0.349 | 0.000 |
| meaningfulness | 0.243 | 0.001 |
| temporal_duration | -0.625 | 0.001 |
| clarity | 0.354 | 0.002 |
| specificity | 0.285 | 0.002 |
| external_motivation | 0.169 | 0.005 |
| affordance | 0.237 | 0.008 |
| difficulty | -0.230 | 0.009 |
| external_importance | 0.151 | 0.014 |
| frequency_R | 0.639 | 0.017 |
| visibility | 0.141 | 0.020 |
| control | -0.220 | 0.033 |
| intrinsic_motivation | 0.128 | 0.034 |
| basic_needs | -0.131 | 0.061 |
| ideal_motivation | -0.146 | 0.063 |
| importance | 0.195 | 0.075 |
| identified_motivation | 0.148 | 0.193 |
| construal_level | 0.080 | 0.212 |
| end_state_specificity_R | 0.192 | 0.217 |
| commonality | -0.068 | 0.303 |
| introjected_motivation | 0.053 | 0.364 |
| ought_motivation | 0.052 | 0.428 |
| connectedness | -0.050 | 0.434 |
| attainment_maintenance_R | -0.035 | 0.512 |
| approach_avoidance_R | -0.051 | 0.542 |
| social_desirability | 0.058 | 0.559 |
| attractiveness_progress | -0.064 | 0.605 |
| attractiveness_achievement | -0.032 | 0.797 |
| instrumentality | -0.012 | 0.860 |
| conflict | 0.009 | 0.916 |
Generate differences in progress (progress_final - progress_base)
merged_progress_clean_w <- merged_progress_clean_w %>%
mutate(progress_diff = progress_final - progress_base)
For long term goals, we assess the overall progress at baseline and at follow-ups we assess their progress out of the expected target they set for the three-month period, so the baseline progress can still serve as a co-variate but it doesn’t make sense to substract the baseline progres from the final progress. For the other two types of goals, the mean progress is positive and the changes among short-term goals are fairly large (4 on a 10-point scale).
Group by goal types
describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$goalType, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 175 | 3.131429 | 3.408894 | 3 | 3.085106 | 2.9652 | -6 | 10 | 16 | 0.1409869 | -0.4983614 | 0.2576882 |
| X12 | 2 | recurrance | 1 | 299 | 2.107023 | 3.541970 | 2 | 2.033195 | 2.9652 | -8 | 11 | 19 | 0.1310583 | 0.0607720 | 0.2048374 |
| X13 | 3 | short-term | 1 | 217 | 4.009217 | 4.057447 | 4 | 4.040000 | 4.4478 | -8 | 11 | 19 | -0.0703913 | -0.6749279 | 0.2754375 |
Group by the final status: this somewhat validate the measure
describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$status_final, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | abandoned | 1 | 79 | -0.8227848 | 2.555835 | 0 | -0.6923077 | 1.4826 | -8 | 4 | 12 | -0.6591064 | 0.3035138 | 0.2875540 |
| X12 | 2 | adjusted | 1 | 32 | 2.1250000 | 3.414863 | 2 | 2.1538462 | 2.9652 | -6 | 9 | 15 | -0.0703330 | -0.1373564 | 0.6036682 |
| X13 | 3 | completed | 1 | 150 | 6.5266667 | 3.099462 | 7 | 6.6916667 | 2.9652 | -2 | 11 | 13 | -0.4747783 | -0.5558802 | 0.2530700 |
| X14 | 4 | continued | 1 | 430 | 2.4790698 | 3.171593 | 2 | 2.4069767 | 2.9652 | -8 | 11 | 19 | 0.1927872 | 0.0891363 | 0.1529478 |
Group by the final time point: there’s no clean differences across different time-point.
describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$final_time, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | F1 | 1 | 70 | 2.957143 | 4.460570 | 3 | 3.107143 | 4.4478 | -8 | 11 | 19 | -0.2849853 | -0.2641526 | 0.5331401 |
| X12 | 2 | F2 | 1 | 78 | 3.871795 | 4.455724 | 4 | 3.890625 | 5.9304 | -5 | 11 | 16 | 0.0194395 | -1.2644067 | 0.5045114 |
| X13 | 3 | F3 | 1 | 543 | 2.834254 | 3.542854 | 2 | 2.763218 | 2.9652 | -8 | 11 | 19 | 0.1824350 | -0.2513765 | 0.1520384 |
The distributions are normally spread and they look reasonable.
merged_progress_clean_w %>%
filter(status_final %in% c("abandoned", "completed", "continued")) %>%
ggplot(aes(x = progress_diff)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(-10, 10, by = 1)) +
facet_grid(status_final~goalType)
This is very similar to both the baseline and the final progress
mlm_progressDiff <- lmer(progress_diff ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_progressDiff) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.244
## 2 Residual 0.756
Generate differences in satisfaction (satisfaction_final - satisfaction_base)
merged_progress_clean_w <- merged_progress_clean_w %>%
mutate(satisfaction_diff = satisfaction_final - satisfaction_base)
Group by goal types: No clear differences across the three types and the changes are all small.
describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$goalType, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | long-term | 1 | 177 | 0.8926554 | 2.185906 | 1 | 0.8461538 | 1.4826 | -5 | 6 | 11 | 0.2239604 | 0.0384371 | 0.1643027 |
| X12 | 2 | recurrance | 1 | 299 | 0.8963211 | 2.114020 | 1 | 0.8921162 | 1.4826 | -5 | 6 | 11 | 0.0805586 | -0.0020173 | 0.1222569 |
| X13 | 3 | short-term | 1 | 217 | 0.9861751 | 2.435234 | 1 | 0.9142857 | 2.9652 | -4 | 6 | 10 | 0.2112809 | -0.4595309 | 0.1653144 |
Group by final status: The differeces among completed goals make sense, the decrease in satisfaction among abandoned goals and the increase among continued goals are smaller than I expected, especially given that the average differences in progress among continued goals are fairly large.
describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$status_final, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | abandoned | 1 | 79 | -1.0379747 | 1.564371 | -1.0 | -0.9846154 | 1.4826 | -5 | 2 | 7 | -0.4537986 | -0.3105004 | 0.1760055 |
| X12 | 2 | adjusted | 1 | 32 | 0.2500000 | 2.314052 | 0.0 | 0.1923077 | 2.9652 | -4 | 5 | 9 | 0.0226972 | -0.8153072 | 0.4090705 |
| X13 | 3 | completed | 1 | 152 | 2.5789474 | 1.944686 | 2.0 | 2.5163934 | 1.4826 | -2 | 6 | 8 | 0.2546586 | -0.7767080 | 0.1577349 |
| X14 | 4 | continued | 1 | 430 | 0.7488372 | 2.036310 | 0.5 | 0.7122093 | 2.2239 | -5 | 6 | 11 | 0.1859582 | 0.0071811 | 0.0981996 |
Group by the final time point: The differences are mainly driven by goal status
describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$final_time, mat = T) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| item | group1 | vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| X11 | 1 | F1 | 1 | 72 | 1.1527778 | 2.576490 | 1 | 1.2241379 | 1.4826 | -5 | 6 | 11 | -0.1959296 | -0.1323998 | 0.3036423 |
| X12 | 2 | F2 | 1 | 78 | 1.3717949 | 2.609219 | 1 | 1.3593750 | 2.9652 | -4 | 6 | 10 | 0.0767101 | -0.7227886 | 0.2954359 |
| X13 | 3 | F3 | 1 | 543 | 0.8287293 | 2.119611 | 1 | 0.7862069 | 1.4826 | -5 | 6 | 11 | 0.2221840 | -0.0875914 | 0.0909612 |
surprisingly, a large portion of continued goals had no changes in people’s satisfaction scores, and the changes among abandoned goals are not as negative as I would expected.
merged_progress_clean_w %>%
filter(status_final %in% c("abandoned", "completed", "continued")) %>%
ggplot(aes(x = satisfaction_diff)) +
geom_histogram(fill = "orange") +
scale_x_continuous(breaks=seq(-10, 10, by = 1)) +
facet_grid(status_final~goalType)
mlm_satisfactionDiff <- lmer(satisfaction_diff ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)
VarCorr(mlm_satisfactionDiff) %>%
as_tibble() %>%
mutate(ICC=vcov/sum(vcov)) %>%
select(grp, ICC)
## # A tibble: 2 x 2
## grp ICC
## <chr> <dbl>
## 1 MTurkCode 0.147
## 2 Residual 0.853
For the following correlations, I excluded all the adjusted goals and long-term goals.
# exclude goals that were adjusted at any follow-up
adjustedDf <- merged_progress_clean_w %>%
filter(status_F1 == "adjusted" | status_F2 == "adjusted" | status_F3 == "adjusted")
long_termDf <- merged_progress_clean_w %>%
filter(goalType == "long-term")
merged_progress_noAdj_longT_w <- merged_progress_clean_w %>%
anti_join(adjustedDf, by = c("MTurkCode", "goal")) %>%
anti_join(long_termDf, by = c("MTurkCode", "goal"))
# merge the factor score data with finalline progress
factorScore_4f_diff <- factorScore_4f %>%
right_join(select(merged_progress_noAdj_longT_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f4 <- factorScore_4f_diff %>%
select(Value: satisfaction_diff) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Group by goal type: The relationships between factor scores and the differences in progress are very weak
factorScore_4f_diff %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| recurrance | 0.0392881 | 0.1194290 | 0.0354510 | 0.0219109 | 321 |
| short-term | -0.0003428 | 0.0728943 | 0.0177073 | -0.0132115 | 230 |
Group by final status: similarly, the relationships between factor scores and the differences in progress are very weak
factorScore_4f_diff %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | 0.1439497 | -0.0090075 | 0.1579186 | 0.1147006 | 57 |
| completed | -0.0505293 | -0.0821278 | -0.0483586 | 0.0814199 | 125 |
| continued | -0.0354628 | 0.0768295 | -0.0570314 | -0.0337648 | 285 |
Grouped by final status * goal type: the relationships between the 4-factor socres are weak among continued recurrence goals. For the rest of the groups, it’s hard to interpret because their sample size is too small. For the completed short-term goals, we don’t have the restricted range problem here as we did for the final progress, but the relationships are still very weak < .2
factorScore_4f_diff %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | recurrance | -0.0411846 | -0.2153409 | 0.0587261 | 0.0127724 | 34 |
| abandoned | short-term | 0.4657866 | 0.2874423 | 0.2154953 | 0.3326553 | 23 |
| completed | recurrance | 0.0901850 | 0.1170353 | 0.0310480 | 0.1197367 | 33 |
| completed | short-term | -0.0310108 | -0.1577541 | -0.0850076 | 0.1570983 | 92 |
| continued | recurrance | -0.0743459 | 0.1062170 | -0.0603492 | -0.0290552 | 202 |
| continued | short-term | 0.0540879 | 0.0120914 | -0.0441888 | -0.0482097 | 83 |
Exclude only the adjusted goals for the following analysis with satisfaction
# exclude the adjusted goals
merged_progress_noAdj_w <- merged_progress_clean_w %>%
anti_join(adjustedDf, by = c("MTurkCode", "goal"))
# merge the factor score data with differences in DVs
factorScore_4f_diff <- factorScore_4f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))
Group by goal type: The relationships between factor scores and the differences in satisfaction are very weak, except that external may be positively related to differences in satisfaction among long-term goals, which is driven by the positiive relationship between external and final satisfaction
factorScore_4f_diff %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | -0.0659105 | -0.1424106 | 0.1996258 | 0.0212275 | 191 |
| recurrance | 0.0779443 | 0.0885843 | 0.0653205 | 0.0641917 | 321 |
| short-term | -0.0356988 | 0.0211771 | 0.0672662 | -0.0022790 | 230 |
Group by final status: clarity has negative relationships with differences in satisfaction among abandoned and completed goals and consensus has a positive relationship among completed goals. This pattern is differenct from the relationships between final satisfaction and the factor scores.
factorScore_4f_diff %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | -0.0176081 | -0.2956209 | 0.0653710 | -0.0174572 | 72 |
| completed | -0.0354384 | -0.2060854 | 0.0416495 | 0.2041077 | 149 |
| continued | -0.0238998 | -0.0044727 | 0.0649759 | 0.0279223 | 411 |
Grouped by final status * goal type: It seems like there’s a positive relationship between changes in satisfaction and external among continued long-term goals and a positive relationship with consensus among completed short-term goals.
factorScore_4f_diff %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | 0.0872081 | -0.2010076 | 0.4691874 | 0.3402471 | 15 |
| abandoned | recurrance | -0.0316278 | -0.4070358 | 0.0524494 | -0.1491836 | 34 |
| abandoned | short-term | -0.1968659 | -0.1573201 | -0.3615956 | -0.0419953 | 23 |
| completed | long-term | -0.3734803 | -0.5767146 | -0.1225704 | 0.1381671 | 24 |
| completed | recurrance | 0.1891442 | -0.0721518 | -0.0356058 | 0.2185533 | 33 |
| completed | short-term | 0.0171491 | -0.1126833 | 0.1140369 | 0.2607106 | 92 |
| continued | long-term | -0.0629739 | -0.1231664 | 0.2085611 | 0.0286050 | 126 |
| continued | recurrance | -0.0120457 | 0.1340274 | 0.0163822 | 0.0578360 | 202 |
| continued | short-term | 0.0089015 | -0.0575893 | -0.0214324 | -0.0817185 | 83 |
# merge the factor score data with finalline progress
factorScore_6f_diff <- factorScore_6f %>%
right_join(select(merged_progress_noAdj_longT_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f6 <- factorScore_6f_diff %>%
select(Value: satisfaction_diff) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Group by goal type: The relationships between factor scores and the differences in progress are very weak
factorScore_6f_diff %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| recurrance | 0.0371953 | 0.0182270 | 0.0857612 | 0.0219109 | 0.1270485 | 0.0597198 | 321 |
| short-term | 0.0286694 | -0.0005247 | 0.0302864 | -0.0132115 | 0.0615643 | -0.0896985 | 230 |
Group by final status: similarly, the relationships between factor scores and the differences in progress are very weak. The strongest relationship is a negative correlation between completed goals are instrumentality.
factorScore_6f_diff %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | 0.1336166 | 0.1157844 | -0.0737962 | 0.1147006 | -0.0853399 | 0.0051336 | 57 |
| completed | -0.0233286 | -0.0662958 | -0.1440056 | 0.0814199 | 0.0298926 | -0.1724287 | 125 |
| continued | -0.0530906 | -0.0657432 | -0.0070390 | -0.0337648 | 0.1037463 | 0.0235755 | 285 |
Grouped by final status * goal type: The negative correlation between attainability and completed short-term goals may be driven by the positive relationship between baseline progress and attainability.
factorScore_6f_diff %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | recurrance | -0.0261557 | 0.0094150 | -0.2215489 | 0.0127724 | -0.3176191 | -0.1567662 | 34 |
| abandoned | short-term | 0.4031952 | 0.1556104 | 0.0611213 | 0.3326553 | 0.3017943 | 0.3890509 | 23 |
| completed | recurrance | 0.1515601 | -0.0298642 | -0.0405592 | 0.1197367 | 0.2921775 | -0.0915907 | 33 |
| completed | short-term | -0.0316960 | -0.0849016 | -0.2324008 | 0.1570983 | -0.0756930 | -0.1099649 | 92 |
| continued | recurrance | -0.0932573 | -0.0650893 | 0.0431225 | -0.0290552 | 0.1383606 | 0.0308878 | 202 |
| continued | short-term | 0.0493442 | -0.0603414 | -0.1229295 | -0.0482097 | 0.0240036 | 0.0011588 | 83 |
only exclude adjusted goals for the following analysis
factorScore_6f_diff <- factorScore_6f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))
Group by goal type: The relationships between factor scores and the differences in satisfaction are very weak, except the possible positive correlation between external and differences in satisfaction among long-term goals.
factorScore_6f_diff %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | -0.0871401 | 0.1884293 | -0.0788600 | 0.0212275 | -0.0800691 | -0.0714063 | 191 |
| recurrance | 0.0736412 | 0.0454325 | 0.0563091 | 0.0641917 | 0.1007545 | 0.0697883 | 321 |
| short-term | -0.0290879 | 0.0373850 | 0.0081064 | -0.0022790 | 0.0027581 | -0.0952865 | 230 |
Group by final status: there are negative relationships between attainability and the differences in satisfaction among abandoned and completed goals. The correlations are stronger than those with the clarity factor from the 4-factor model
factorScore_6f_diff %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | -0.0831586 | 0.0729197 | -0.3676196 | -0.0174572 | -0.1156324 | 0.0424149 | 72 |
| completed | -0.0513970 | 0.0047008 | -0.2749020 | 0.2041077 | -0.0645779 | -0.1105696 | 149 |
| continued | -0.0436933 | 0.0496129 | -0.0057933 | 0.0279223 | -0.0193122 | 0.0007884 | 411 |
Grouped by final status * goal type: The differences in satisfaction showed an interesting negative relationship with attainability and a positive relationship with consensus
factorScore_6f_diff %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | 0.0512492 | 0.4544550 | 0.1093867 | 0.3402471 | -0.1243831 | 0.1935554 | 15 |
| abandoned | recurrance | -0.0692659 | 0.0540672 | -0.5025140 | -0.1491836 | -0.1251046 | -0.1314198 | 34 |
| abandoned | short-term | -0.3022866 | -0.3451051 | -0.2664607 | -0.0419953 | -0.0805766 | 0.1975437 | 23 |
| completed | long-term | -0.3958930 | -0.0780967 | -0.4881646 | 0.1381671 | -0.3715121 | -0.2204700 | 24 |
| completed | recurrance | 0.1936366 | -0.1038492 | -0.2109258 | 0.2185533 | 0.1045970 | 0.1569290 | 33 |
| completed | short-term | -0.0065721 | 0.0643473 | -0.2415215 | 0.2607106 | -0.0236993 | -0.1253141 | 92 |
| continued | long-term | -0.0844646 | 0.1947023 | -0.0919962 | 0.0286050 | -0.0880786 | -0.0787986 | 126 |
| continued | recurrance | -0.0142558 | 0.0014703 | 0.1007015 | 0.0578360 | 0.1073972 | 0.0166597 | 202 |
| continued | short-term | -0.0268178 | -0.0345143 | -0.0897976 | -0.0817185 | -0.1143807 | 0.0493428 | 83 |
All variables are measured on a 7-point scale
calculate average striving behavior ratings across all follow-ups.
merged_progress_clean_w <- merged_progress_clean_w %>%
mutate(followup_num = rowSums(!is.na(select(merged_progress_clean_w, status_F1, status_F2, status_F3)))) %>%
mutate(AR_mean = rowSums(dplyr :: select(., AR_F1, AR_F2,AR_F3), na.rm = T) / followup_num,
commitment_mean = rowSums(dplyr :: select(., commitment_F1, commitment_F2,commitment_F3), na.rm = T) / followup_num,
effort_mean = rowSums(dplyr :: select(., effort_F1, effort_F2, effort_F3), na.rm = T) / followup_num,
plan_mean = rowSums(dplyr :: select(., plan_F1, plan_F2,plan_F3), na.rm = T) / followup_num,
resources_other_mean = rowSums(dplyr :: select(., resources_other_F1, resources_other_F2,resources_other_F3), na.rm = T) / followup_num,
resources_self_mean = rowSums(dplyr :: select(., resources_self_F1, resources_self_F2,resources_self_F3), na.rm = T) / followup_num,
urgency_mean = rowSums(dplyr :: select(., urgency_F1, urgency_F2,urgency_F3), na.rm = T) / followup_num,
ACRISS_mean = rowSums(dplyr :: select(., ACRISS_F1, ACRISS_F2,ACRISS_F3), na.rm = T) / followup_num, )
descriptive on each striving variable: the ratings on these variables were different across different final status groups
# descriptive stats for each variable
merged_progress_clean_w %>%
dplyr::select(commitment_mean: ACRISS_mean, goalType,status_final ) %>%
filter(status_final %in% c("abandoned", "completed", "continued")) %>%
gather(commitment_mean: ACRISS_mean, key = "variable", value = "rating") %>%
group_by(variable, status_final) %>%
summarize(mean = mean(rating, na.rm = TRUE),
sd = sd(rating, na.rm = TRUE),
n = n(),
min = min(rating, na.rm = TRUE),
max = max(rating, na.rm = TRUE),
skew = skew(rating, na.rm = T),
kurtosi = kurtosi(rating, na.rm = T)
) %>%
arrange(variable) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| variable | status_final | mean | sd | n | min | max | skew | kurtosi |
|---|---|---|---|---|---|---|---|---|
| ACRISS_mean | abandoned | 3.272292 | 0.5685000 | 80 | 1.666667 | 4.666667 | -0.1849565 | -0.0372370 |
| ACRISS_mean | completed | 2.089072 | 0.5102247 | 152 | 1.000000 | 4.333333 | 1.5755962 | 4.3925938 |
| ACRISS_mean | continued | 2.377852 | 0.5201744 | 447 | 1.355556 | 4.222222 | 0.6182702 | 0.2346251 |
| commitment_mean | abandoned | 2.591667 | 1.3516412 | 80 | 1.000000 | 7.000000 | 0.8716935 | 0.2468120 |
| commitment_mean | completed | 6.228070 | 1.1031569 | 152 | 1.000000 | 7.000000 | -1.7543350 | 3.5303725 |
| commitment_mean | continued | 5.007084 | 1.4829246 | 447 | 1.000000 | 7.000000 | -0.4611037 | -0.6860031 |
| effort_mean | abandoned | 2.556250 | 1.3622765 | 80 | 0.500000 | 7.000000 | 0.9473132 | 0.7497691 |
| effort_mean | completed | 5.546053 | 1.3784045 | 152 | 1.000000 | 7.000000 | -0.7176395 | -0.1379350 |
| effort_mean | continued | 4.538777 | 1.4811093 | 447 | 1.000000 | 7.000000 | -0.1767642 | -0.7207488 |
| plan_mean | abandoned | 3.510417 | 1.5490898 | 80 | 1.000000 | 7.000000 | 0.2328215 | -0.6668215 |
| plan_mean | completed | 6.020833 | 1.1302764 | 152 | 2.500000 | 7.000000 | -1.0223498 | 0.3322989 |
| plan_mean | continued | 5.124907 | 1.3353390 | 447 | 1.000000 | 7.000000 | -0.7766584 | 0.2214281 |
| resources_other_mean | abandoned | 2.897917 | 1.5995986 | 80 | 1.000000 | 7.000000 | 0.6116149 | -0.4565321 |
| resources_other_mean | completed | 4.186403 | 2.0717390 | 152 | 1.000000 | 7.000000 | -0.2228536 | -1.2795393 |
| resources_other_mean | continued | 3.714019 | 1.7237771 | 447 | 1.000000 | 7.000000 | 0.0208801 | -1.0937377 |
| resources_self_mean | abandoned | 4.675000 | 1.3908734 | 80 | 1.666667 | 7.000000 | -0.2909833 | -0.6213189 |
| resources_self_mean | completed | 6.264254 | 0.9020140 | 152 | 2.500000 | 7.000000 | -1.5777454 | 2.8587103 |
| resources_self_mean | continued | 5.687174 | 1.1202665 | 447 | 1.000000 | 7.000000 | -0.9040585 | 0.6267975 |
| urgency_mean | abandoned | 2.710417 | 1.3865295 | 80 | 1.000000 | 7.000000 | 0.8103190 | 0.4948579 |
| urgency_mean | completed | 5.383772 | 1.6219202 | 152 | 1.000000 | 7.000000 | -0.8515314 | 0.0064397 |
| urgency_mean | continued | 4.534303 | 1.4572693 | 447 | 1.000000 | 7.000000 | -0.1827949 | -0.5554729 |
histogram:Most distribution looks normal, except the extreme level on commitment (little less than 20% people rated 7 )
merged_progress_clean_w %>%
select(commitment_mean: ACRISS_mean) %>%
gather(commitment_mean: ACRISS_mean, key = "variable", value = "rating") %>%
ggplot(aes(x = rating)) +
geom_histogram(fill = "orange",
colour = "black",
alpha = .6) +
facet_wrap(~variable)
# ACRISS
mlm <-lmer(ACRISS_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
ACRISS <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(ACRISS=vcov/sum(vcov)) %>%
dplyr :: select(ACRISS)
# commitment
mlm <-lmer(commitment_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
commitment <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(commitment=vcov/sum(vcov)) %>%
dplyr :: select(commitment)
# effort
mlm <-lmer(effort_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
effort <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(effort=vcov/sum(vcov)) %>%
dplyr :: select(effort)
# plan
mlm <-lmer(plan_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
plan <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(plan=vcov/sum(vcov)) %>%
dplyr :: select(plan)
# resources_other
mlm <-lmer(resources_other_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
resources_other <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(resources_other=vcov/sum(vcov)) %>%
dplyr :: select(resources_other)
# resources_self
mlm <-lmer(resources_self_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
resources_self <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(resources_self=vcov/sum(vcov)) %>%
dplyr :: select(resources_self)
# urgency
mlm <-lmer(urgency_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)
urgency <- VarCorr(mlm) %>%
as_tibble() %>%
mutate(urgency=vcov/sum(vcov)) %>%
dplyr :: select(urgency)
# combine the outputs into one data frame
strive_icc <- data.frame("Variance" = c("between subject", "within subject"))
strive_icc <- bind_cols(strive_icc, ACRISS, commitment, effort, plan,resources_other, resources_self, urgency)
strive_icc %>% kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| Variance | ACRISS | commitment | effort | plan | resources_other | resources_self | urgency |
|---|---|---|---|---|---|---|---|
| between subject | 0.1908244 | 0.1546912 | 0.201107 | 0.2981519 | 0.5495971 | 0.2966003 | 0.2021179 |
| within subject | 0.8091756 | 0.8453088 | 0.798893 | 0.7018481 | 0.4504029 | 0.7033997 | 0.7978821 |
Adjusted goals were excluded from all following analysis
merged_progress_noAdj_w <- merged_progress_clean_w %>%
anti_join(adjustedDf, by = c("MTurkCode", "goal"))
Consensus factor correlate little with the striving variables, but the other three positively correlate with striving behaviors like commitment, effort, urgency, which correlate with the DVs. However, these factor scores are not correlate with DVs directly.
# merge the factor score data with strving behavior data
factorScore_4f_diff <- factorScore_4f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, progress_base,progress_final, satisfaction_diff, satisfaction_base, satisfaction_final, commitment_mean: ACRISS_mean), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f4 <- factorScore_4f_diff %>%
select(Value: ACRISS_mean) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), tl.col = c("darkorange1", "darkorange1", "darkorange1", "darkorange1", "midnightblue", "midnightblue", "midnightblue","midnightblue", "midnightblue","midnightblue","red","red", "red", "darkorange1", "darkorange1", "red", "midnightblue"))
Other than the correlation with attainability, there’s no major differences between the two factor model.
# merge the factor score data with strving behavior data
factorScore_6f_diff <- factorScore_6f %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, progress_base,progress_final, satisfaction_diff, satisfaction_base, satisfaction_final, commitment_mean: ACRISS_mean), by = c("MTurkCode", "goal"))
# correlate the correlations
final_corr_f6 <- factorScore_6f_diff %>%
select(Value: ACRISS_mean) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), tl.col = c("midnightblue", "red", "red", "darkorange1", "darkorange1", "red", "red","red", "red","midnightblue","midnightblue","midnightblue", "midnightblue", "midnightblue", "midnightblue", "red", "darkorange1", "darkorange1", "darkorange1", "darkorange1"))
Overall, the correlations between DVs and baseline goal representation variables are weak.
# merge baseline variable with the differnces in DVs
baseline_goalRep_progress <- merged_progress_clean_w %>%
select(MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final) %>%
left_join(select(baseline_goalRep, MTurkCode, goal, attainability:visibility), by = c("MTurkCode", "goal"))
# correlate the correlations
corr_dv_baseRep <- baseline_goalRep_progress %>%
select(progress_diff: visibility) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(corr_dv_baseRep, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
All post factor scores are unit scores generated based on the baseline factor model
The correlations between post factor scores are very similar to those of the baseline factor scores
factorScore_4f_post <- factorScore_4f_post %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final, goalType, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
post_corr_f4 <- factorScore_4f_post %>%
select(Value: satisfaction_final) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(post_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Grouped by goal type: Compared to the baseline factor scores, the relationships between the final progress and post value and consensus are stronger even though they are still pretty weak. The positive relationship with clarity is fairly strong
factorScore_4f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.1733811 | 0.5901386 | 0.1396388 | -0.2048001 | 191 |
| recurrance | 0.1420526 | 0.6591979 | 0.1123901 | -0.0471908 | 321 |
| short-term | 0.1087231 | 0.6298990 | 0.1908695 | -0.1417483 | 230 |
Grouped by final status: Very similar to the baseline factor score: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final progress.
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | 0.1707726 | 0.1457944 | 0.0894599 | -0.0501610 | 72 |
| completed | 0.0237599 | 0.4201678 | 0.0583003 | 0.0745075 | 149 |
| continued | 0.0153511 | 0.4636174 | 0.0445121 | -0.1364634 | 411 |
Grouped by goal type * final status: the positive relationship with post clarity score is strong than with the baseline clarity score. Among continued long-term goals, the final progress slightly correlated with baseline external but not with post external score and it doesn’t correlate with basline consensus score but has a slight negative correlation with post consensus score.
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | 0.3258740 | 0.6074642 | -0.0054103 | -0.1869232 | 15 |
| abandoned | recurrance | -0.1126947 | 0.0159094 | -0.0282622 | -0.0460038 | 34 |
| abandoned | short-term | 0.1451295 | -0.0326705 | 0.3381289 | -0.0584157 | 23 |
| completed | long-term | 0.0501232 | 0.2229130 | 0.0726417 | 0.1813062 | 24 |
| completed | recurrance | 0.1044534 | 0.6299672 | 0.1117481 | 0.2648827 | 33 |
| completed | short-term | 0.0158853 | 0.3258848 | -0.0863395 | -0.0346363 | 92 |
| continued | long-term | 0.0871984 | 0.4402923 | 0.0472116 | -0.2128010 | 126 |
| continued | recurrance | -0.0585349 | 0.5495203 | 0.0679804 | -0.1134180 | 202 |
| continued | short-term | 0.1197004 | 0.3118421 | 0.0682834 | -0.1430417 | 83 |
Grouped by goal type: the positive relationship with post clarity and external are stronger than those with baseline clarity and external, and it also slightly correlate with value.
factorScore_4f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | 0.1767122 | 0.6608269 | 0.2184295 | -0.1902801 | 191 |
| recurrance | 0.1538647 | 0.6690722 | 0.1278989 | -0.0751069 | 321 |
| short-term | 0.0682859 | 0.6712337 | 0.1707683 | -0.1623117 | 230 |
Grouped by final status: It’s interesting to see that the relationships with post value and consensus scores are the opposite between abandoned goals and completed goals. Similar to baseline factor scores, the post clarity only correlate with post satisfaction among completed and continued goals.
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | -0.1012869 | 0.0914512 | -0.0134217 | -0.2035848 | 72 |
| completed | 0.1174601 | 0.5516815 | 0.1051926 | 0.1338470 | 149 |
| continued | 0.0470685 | 0.5352888 | 0.1040676 | -0.1328488 | 411 |
Grouped by goal type * final status: the relationship with post value and post consensus are stronger than those at baseline among the continued long-term goals even though they are still very weak.
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | 0.1026255 | 0.6388260 | 0.0743021 | -0.0105443 | 15 |
| abandoned | recurrance | -0.3493643 | 0.0641695 | -0.0847837 | -0.3215312 | 34 |
| abandoned | short-term | -0.4393812 | -0.3713525 | -0.1491386 | -0.4615597 | 23 |
| completed | long-term | 0.1824361 | 0.4813574 | 0.4352635 | 0.1886701 | 24 |
| completed | recurrance | 0.2670938 | 0.6977084 | 0.1757457 | 0.3194823 | 33 |
| completed | short-term | 0.1017996 | 0.5438455 | -0.0727763 | 0.0673259 | 92 |
| continued | long-term | 0.1401614 | 0.5616997 | 0.1666489 | -0.1823533 | 126 |
| continued | recurrance | 0.0084282 | 0.5786143 | 0.0947906 | -0.1167515 | 202 |
| continued | short-term | 0.0098105 | 0.4550095 | 0.0729577 | -0.1681724 | 83 |
The correlations between the 6 factors are similar to the baseline
factorScore_6f_post <- factorScore_6f_post %>%
right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final, goalType, status_final), by = c("MTurkCode", "goal"))
# correlate the correlations
post_corr_f6 <- factorScore_6f_post %>%
select(Value: satisfaction_base) %>%
cor(use = "pairwise.complete.obs")
# visualization
corrplot(post_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))
Grouped by goal type: Compared to the baseline factor scores, the relationships between the final progress and post value consensus and instrumentality are stronger even though they are still pretty weak. The positive relationship with attainability is very strong
factorScore_6f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.1961513 | 0.1235441 | 0.7280173 | -0.2048001 | 0.2155596 | 0.1286315 | 191 |
| recurrance | 0.2079579 | 0.0892883 | 0.7999855 | -0.0471908 | 0.2169392 | 0.1503792 | 321 |
| short-term | 0.1495419 | 0.1678083 | 0.6982272 | -0.1417483 | 0.2261966 | 0.1424433 | 230 |
Grouped by final status: Among continued goals, the relationships with attainability is very high and it’s stronger than with the baseline attainability. The relationships with value, external and instrumentality mainly come from abandoned goals, but the sample size is rather small
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | 0.1485417 | 0.1423359 | 0.2814464 | -0.0501610 | 0.0588489 | 0.1817004 | 72 |
| completed | 0.0408515 | 0.0197800 | 0.3660278 | 0.0745075 | 0.3175898 | 0.0078276 | 149 |
| continued | 0.0561579 | 0.0392718 | 0.6376825 | -0.1364634 | 0.1053087 | 0.0837678 | 411 |
Grouped by goal type * final status: The positive relationship with attainability is stronger than the baseline, but the post progress is no longer correlate with external even tough its relationship with baseline external is very weak.
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | 0.3758986 | 0.0773865 | 0.6485621 | -0.1869232 | 0.1353221 | 0.3521060 | 15 |
| abandoned | recurrance | -0.2415407 | -0.0394216 | 0.0664749 | -0.0460038 | 0.1115434 | 0.1300656 | 34 |
| abandoned | short-term | 0.1522832 | 0.4364747 | 0.1219388 | -0.0584157 | -0.1136824 | 0.0156560 | 23 |
| completed | long-term | 0.0171376 | 0.0483789 | 0.2878568 | 0.1813062 | 0.0718681 | 0.0164434 | 24 |
| completed | recurrance | 0.1520450 | 0.0767900 | 0.5948689 | 0.2648827 | 0.6777720 | 0.0725449 | 33 |
| completed | short-term | 0.0383559 | -0.1187003 | 0.1837005 | -0.0346363 | 0.1815437 | 0.0388718 | 92 |
| continued | long-term | 0.1055531 | 0.0562843 | 0.6263109 | -0.2128010 | 0.1612258 | 0.0841745 | 126 |
| continued | recurrance | 0.0277484 | 0.0493729 | 0.7476241 | -0.1134180 | 0.1565894 | -0.0204238 | 202 |
| continued | short-term | 0.1098845 | 0.0774772 | 0.3639261 | -0.1430417 | 0.0539275 | 0.1709571 | 83 |
Grouped by goal type: The positive relationship with value is stronger compared to the baseline
factorScore_6f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | 0.2268206 | 0.2021722 | 0.7629654 | -0.1902801 | 0.3180387 | 0.1190700 | 191 |
| recurrance | 0.2246014 | 0.0971241 | 0.7898147 | -0.0751069 | 0.1993175 | 0.1563845 | 321 |
| short-term | 0.1070067 | 0.1362436 | 0.7747234 | -0.1623117 | 0.1603736 | 0.1540615 | 230 |
Grouped by final status: The final satisfaction among continued goals only correlate with attainability and among completed goals it has a slightly positive relationship with value.
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | -0.1146101 | 0.0102465 | 0.2330892 | -0.2035848 | -0.0718138 | 0.0514956 | 72 |
| completed | 0.1811599 | 0.0463941 | 0.4887445 | 0.1338470 | 0.3625529 | 0.0602137 | 149 |
| continued | 0.0927562 | 0.0907683 | 0.7011751 | -0.1328488 | 0.1195816 | 0.1089621 | 411 |
Grouped by goal type * final status: Among continued goals, only for the long-term goals the final satisfaction relates to other factors besides attainability even though it’s very weak.
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | 0.1318190 | 0.1735273 | 0.6014539 | -0.0105443 | 0.3678597 | 0.1610744 | 15 |
| abandoned | recurrance | -0.3678799 | -0.1506215 | 0.0910004 | -0.3215312 | 0.0070542 | -0.0818234 | 34 |
| abandoned | short-term | -0.3666162 | -0.1237462 | 0.0498102 | -0.4615597 | -0.7333460 | -0.2940525 | 23 |
| completed | long-term | 0.2343187 | 0.3328345 | 0.0688718 | 0.1886701 | 0.4566795 | 0.0443847 | 24 |
| completed | recurrance | 0.3506582 | 0.1238761 | 0.6628055 | 0.3194823 | 0.6624047 | 0.1168189 | 33 |
| completed | short-term | 0.1729788 | -0.1292619 | 0.4279765 | 0.0673259 | 0.2438183 | 0.1253096 | 92 |
| continued | long-term | 0.1869030 | 0.1656673 | 0.7017229 | -0.1823533 | 0.2916377 | 0.1016807 | 126 |
| continued | recurrance | 0.0886496 | 0.0701758 | 0.7429123 | -0.1167515 | 0.1434056 | 0.0365077 | 202 |
| continued | short-term | -0.0249382 | 0.0611623 | 0.6096680 | -0.1681724 | -0.0492099 | 0.1913616 | 83 |
For the following correlations, I excluded long-term goals for the correlations with progress.
factorScore_4f_post_noLong <- factorScore_4f_post %>% anti_join(long_termDf, by = c("MTurkCode", "goal"))
Grouped by goal type: similar to the baseline factor scores, the differences in progress only correlate with clarity
factorScore_4f_post_noLong %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| recurrance | 0.0640043 | 0.4295748 | 0.0471214 | 0.0035573 | 321 |
| short-term | 0.0688262 | 0.4679822 | 0.1007903 | -0.0715905 | 230 |
Grouped by final status: the differences in progress only correlate with clarity among completed and continued goals
factorScore_4f_post_noLong %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | 0.0174673 | 0.0576490 | 0.0899795 | 0.1142524 | 57 |
| completed | -0.0434347 | 0.1847681 | -0.0103803 | 0.0518593 | 125 |
| continued | -0.0478321 | 0.2221621 | -0.0173738 | -0.0483888 | 285 |
Grouped by goal type * final status: with further grouping the relationship with clarity among completed goals seems mainly driven by a small sample of recurrence cases
factorScore_4f_post_noLong %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | recurrance | -0.2104854 | 0.0729156 | -0.0402688 | -0.0515341 | 34 |
| abandoned | short-term | 0.3956710 | 0.0499133 | 0.2441539 | 0.3570029 | 23 |
| completed | recurrance | 0.1207747 | 0.5131191 | -0.0166207 | 0.2180272 | 33 |
| completed | short-term | -0.0582945 | 0.0060486 | -0.0594733 | 0.0196897 | 92 |
| continued | recurrance | -0.0922890 | 0.2335215 | 0.0076824 | -0.0227869 | 202 |
| continued | short-term | 0.0555076 | 0.1977922 | -0.0684629 | -0.1025639 | 83 |
Grouped by goal type: Other than the relationship with clarity, differences in satisfaction may have a very weak relationship with external
factorScore_4f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| long-term | -0.0391397 | 0.3638657 | 0.1724398 | -0.0035699 | 191 |
| recurrance | 0.0982946 | 0.4231712 | 0.0228297 | 0.0404108 | 321 |
| short-term | 0.0116420 | 0.4876574 | 0.0928789 | -0.0215742 | 230 |
Grouped by final status: The relationship with value and consensus may due to the relationships with the final satisfaction
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|
| abandoned | -0.1153182 | 0.0200725 | -0.0340933 | -0.0104489 | 72 |
| completed | -0.1407685 | 0.0874260 | -0.0187235 | 0.1848985 | 149 |
| continued | 0.0044654 | 0.2913642 | 0.0335775 | 0.0226658 | 411 |
Grouped by goal type * final status: The differences in satisfaction has a very weak relationship with external score among continued long-term goals.
factorScore_4f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | Clarity | External | Consensus | total_goal |
|---|---|---|---|---|---|---|
| abandoned | long-term | -0.1203491 | 0.2356822 | 0.3156737 | 0.4205625 | 15 |
| abandoned | recurrance | -0.1118925 | -0.0253110 | -0.0869056 | -0.1072592 | 34 |
| abandoned | short-term | -0.2818308 | -0.0426005 | -0.2932453 | -0.1016043 | 23 |
| completed | long-term | -0.5065967 | -0.3049206 | -0.1840140 | 0.2442437 | 24 |
| completed | recurrance | 0.0781313 | 0.3724274 | -0.1996571 | 0.3062805 | 33 |
| completed | short-term | -0.0959512 | 0.0743283 | 0.0697093 | 0.1457361 | 92 |
| continued | long-term | -0.0062867 | 0.2969566 | 0.1618590 | -0.0165443 | 126 |
| continued | recurrance | -0.0074746 | 0.3119453 | 0.0280021 | 0.0300899 | 202 |
| continued | short-term | 0.0453796 | 0.2713875 | -0.1392284 | 0.0102702 | 83 |
factorScore_6f_post_noLong <- factorScore_6f_post %>% anti_join(long_termDf, by = c("MTurkCode", "goal"))
Grouped by goal type: similar to the baseline factor scores, the differences in progress only correlate with attainability
factorScore_6f_post_noLong %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| recurrance | 0.1166142 | 0.0187701 | 0.5118301 | 0.0035573 | 0.0809233 | 0.1102107 | 321 |
| short-term | 0.1062940 | 0.0778927 | 0.5050453 | -0.0715905 | 0.2110852 | 0.0663166 | 230 |
Grouped by final status: the differences in progress only correlate with attainability among completed and continued goals
factorScore_6f_post_noLong %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | 0.0607533 | 0.0337290 | 0.0633714 | 0.1142524 | -0.0429941 | -0.1037415 | 57 |
| completed | 0.0217329 | -0.0381568 | 0.2309069 | 0.0518593 | 0.1577112 | -0.1307848 | 125 |
| continued | -0.0388247 | -0.0250999 | 0.2700332 | -0.0483888 | 0.0214409 | 0.0543197 | 285 |
Grouped by goal type * final status: with further grouping the relationship with attainability among completed goals seems mainly driven by a small sample of recurrence cases
factorScore_6f_post_noLong %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | recurrance | -0.1044443 | -0.1393229 | 0.1813827 | -0.0515341 | -0.1962166 | -0.2161656 | 34 |
| abandoned | short-term | 0.2979082 | 0.2470109 | -0.0612128 | 0.3570029 | 0.1656205 | 0.1787512 | 23 |
| completed | recurrance | 0.2274237 | -0.0770516 | 0.4479868 | 0.2180272 | 0.4507017 | -0.0006003 | 33 |
| completed | short-term | -0.0065042 | -0.0636623 | 0.0837962 | 0.0196897 | 0.0227822 | -0.1229524 | 92 |
| continued | recurrance | -0.0634470 | -0.0010059 | 0.3336722 | -0.0227869 | -0.0005240 | 0.0297420 | 202 |
| continued | short-term | 0.0253482 | -0.0768080 | 0.1427683 | -0.1025639 | 0.1216810 | 0.0938383 | 83 |
Grouped by goal type: Other than the relationship with clarity, differences in satisfaction may have a very weak relationship with external among long-term goals
factorScore_6f_post %>%
group_by(goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F, ) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| long-term | -0.0128025 | 0.1636347 | 0.4355464 | -0.0035699 | 0.2286296 | -0.0243176 | 191 |
| recurrance | 0.1472432 | -0.0091583 | 0.5184258 | 0.0404108 | 0.0716262 | 0.1022322 | 321 |
| short-term | 0.0368098 | 0.0586716 | 0.5575644 | -0.0215742 | 0.0946018 | 0.1276999 | 230 |
Grouped by final status: The relationship with value and consensus may due to the relationships with the final satisfaction
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|
| abandoned | -0.1429020 | -0.0728598 | -0.0405833 | -0.0104489 | -0.0140810 | 0.0012702 | 72 |
| completed | -0.1247682 | -0.0252049 | 0.2560073 | 0.1848985 | 0.0571889 | -0.0025545 | 149 |
| continued | 0.0276216 | 0.0174931 | 0.3880725 | 0.0226658 | 0.0194598 | 0.0464288 | 411 |
Grouped by goal type * final status: The relations with measurability are differences across goal types among the continued goals.
factorScore_6f_post %>%
drop_na(status_final) %>%
group_by(status_final, goalType) %>%
summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
total_goal = n()) %>%
kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
| status_final | goalType | Value | External | Attainability | Consensus | Measurability | Instrumentality | total_goal |
|---|---|---|---|---|---|---|---|---|
| abandoned | long-term | -0.2069922 | 0.3424342 | 0.0031905 | 0.4205625 | 0.5743929 | 0.0045449 | 15 |
| abandoned | recurrance | -0.0296642 | -0.1676448 | 0.0148916 | -0.1072592 | -0.0839171 | -0.1730602 | 34 |
| abandoned | short-term | -0.4355016 | -0.3282446 | -0.1637444 | -0.1016043 | -0.1862117 | 0.1447675 | 23 |
| completed | long-term | -0.5723955 | -0.0693667 | 0.2881246 | 0.2442437 | -0.0069642 | -0.1226004 | 24 |
| completed | recurrance | 0.1772714 | -0.2335008 | 0.5334794 | 0.3062805 | 0.2466269 | 0.1005712 | 33 |
| completed | short-term | -0.0931373 | 0.0437641 | 0.1283367 | 0.1457361 | 0.0085863 | 0.0327982 | 92 |
| continued | long-term | 0.0280559 | 0.1453211 | 0.3379812 | -0.0165443 | 0.2019691 | -0.0439643 | 126 |
| continued | recurrance | 0.0209525 | 0.0060122 | 0.4183387 | 0.0300899 | 0.0193632 | 0.0282896 | 202 |
| continued | short-term | 0.0575760 | -0.1581417 | 0.3577643 | 0.0102702 | -0.1382016 | 0.1361075 | 83 |
# predict final progress
# m1 <- lmer(progress_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (External +Value + Attainability +Consensus + Measurability + Instrumentality| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post)
#
# summary(m1)
# predict final progress
m1 <- lmer(progress_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post)
summary(m1)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: progress_final ~ External + Value + Attainability + Consensus +
## Measurability + Instrumentality + (1 | MTurkCode) + progress_base
## Data: factorScore_6f_post
##
## AIC BIC logLik deviance df.resid
## 2650.6 2694.7 -1315.3 2630.6 597
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -4.2963 -0.5122 0.0807 0.5571 3.2937
##
## Random effects:
## Groups Name Variance Std.Dev.
## MTurkCode (Intercept) 1.522 1.234
## Residual 3.372 1.836
## Number of obs: 607, groups: MTurkCode, 213
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) -1.17111 0.68753 580.33842 -1.703 0.0890 .
## External 0.22890 0.07965 595.16832 2.874 0.0042 **
## Value 0.19427 0.11153 606.50284 1.742 0.0820 .
## Attainability 1.72998 0.06567 589.08304 26.345 < 2e-16 ***
## Consensus -0.10128 0.08678 603.39644 -1.167 0.2436
## Measurability 0.08538 0.08146 599.99316 1.048 0.2950
## Instrumentality -0.20569 0.08909 603.70819 -2.309 0.0213 *
## progress_base 0.13001 0.03192 603.64299 4.074 5.25e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Extrnl Value Attnbl Cnsnss Msrblt Instrm
## External -0.023
## Value -0.430 -0.254
## Attainablty -0.066 0.001 -0.095
## Consensus -0.108 -0.177 -0.144 0.205
## Measurablty -0.510 -0.069 -0.106 -0.189 -0.050
## Instrmntlty -0.211 -0.051 -0.298 -0.167 -0.213 0.002
## progress_bs -0.034 -0.029 -0.013 -0.211 0.011 -0.010 -0.039
factorScore_6f_post_noMissing <- factorScore_6f_post %>%
drop_na()
m1 <- lmer(progress_final ~ (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)
m2 <- lmer(progress_final ~ Attainability + (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)
anova(m1, m2)
## Data: factorScore_6f_post_noMissing
## Models:
## m1: progress_final ~ (1 | MTurkCode) + progress_base
## m2: progress_final ~ Attainability + (1 | MTurkCode) + progress_base
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## m1 4 3155.5 3173.1 -1573.7 3147.5
## m2 5 2659.6 2681.7 -1324.8 2649.6 497.86 1 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m3 <- lmer(scale(progress_final) ~ scale(External) + scale(Attainability) + scale(Instrumentality) + (1| MTurkCode) + scale(progress_base), REML = FALSE, data = factorScore_6f_post_noMissing)
summary(m3)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: scale(progress_final) ~ scale(External) + scale(Attainability) +
## scale(Instrumentality) + (1 | MTurkCode) + scale(progress_base)
## Data: factorScore_6f_post_noMissing
##
## AIC BIC logLik deviance df.resid
## 1137.6 1168.5 -561.8 1123.6 600
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -4.2602 -0.5056 0.0458 0.5938 3.1958
##
## Random effects:
## Groups Name Variance Std.Dev.
## MTurkCode (Intercept) 0.1294 0.3597
## Residual 0.2805 0.5296
## Number of obs: 607, groups: MTurkCode, 213
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 0.003386 0.033478 199.121780 0.101 0.919545
## scale(External) 0.094565 0.027394 603.941249 3.452 0.000595 ***
## scale(Attainability) 0.740384 0.026475 592.160671 27.965 < 2e-16 ***
## scale(Instrumentality) -0.060749 0.028482 593.631052 -2.133 0.033339 *
## scale(progress_base) 0.107540 0.026242 603.395386 4.098 4.74e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) scl(E) scl(A) scl(I)
## scl(Extrnl) 0.008
## scl(Attnbl) -0.004 -0.003
## scl(Instrm) 0.016 -0.217 -0.174
## scl(prgrs_) 0.003 -0.033 -0.225 -0.045
m4 <- lmer(progress_final ~ External + Attainability + (External | MTurkCode) + (Attainability | MTurkCode)+ progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)
anova(m3, m4)
## Data: factorScore_6f_post_noMissing
## Models:
## m3: scale(progress_final) ~ scale(External) + scale(Attainability) +
## m3: scale(Instrumentality) + (1 | MTurkCode) + scale(progress_base)
## m4: progress_final ~ External + Attainability + (External | MTurkCode) +
## m4: (Attainability | MTurkCode) + progress_base
## npar AIC BIC logLik deviance Chisq Df Pr(>Chisq)
## m3 7 1137.6 1168.5 -561.8 1123.6
## m4 11 2661.7 2710.2 -1319.9 2639.7 0 4 1
# predict final progress
m5 <- lmer(satisfaction_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (1| MTurkCode) + progress_final + satisfaction_base + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)
summary(m5)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
## method [lmerModLmerTest]
## Formula: satisfaction_final ~ External + Value + Attainability + Consensus +
## Measurability + Instrumentality + (1 | MTurkCode) + progress_final +
## satisfaction_base + progress_base
## Data: factorScore_6f_post_noMissing
##
## AIC BIC logLik deviance df.resid
## 1646.3 1699.2 -811.1 1622.3 595
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.1887 -0.5018 0.0312 0.5166 3.8946
##
## Random effects:
## Groups Name Variance Std.Dev.
## MTurkCode (Intercept) 0.1196 0.3459
## Residual 0.7449 0.8631
## Number of obs: 607, groups: MTurkCode, 213
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 0.09195 0.29238 509.27605 0.314 0.7533
## External 0.08298 0.03409 542.78616 2.434 0.0152 *
## Value 0.02052 0.04854 588.16772 0.423 0.6726
## Attainability 0.40248 0.04180 589.50010 9.629 < 2e-16 ***
## Consensus -0.03770 0.03829 602.59086 -0.984 0.3253
## Measurability -0.01066 0.03556 598.05083 -0.300 0.7644
## Instrumentality -0.05982 0.03835 564.73703 -1.560 0.1193
## progress_final 0.43015 0.01754 582.08280 24.525 < 2e-16 ***
## satisfaction_base 0.13758 0.02659 568.02628 5.173 3.2e-07 ***
## progress_base -0.04324 0.01643 589.37439 -2.632 0.0087 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) Extrnl Value Attnbl Cnsnss Msrblt Instrm prgrss_f stsfc_
## External -0.027
## Value -0.393 -0.240
## Attainablty -0.072 0.102 -0.014
## Consensus -0.143 -0.159 -0.168 0.072
## Measurablty -0.513 -0.052 -0.111 -0.095 -0.061
## Instrmntlty -0.179 -0.083 -0.336 -0.197 -0.180 0.003
## progrss_fnl 0.067 -0.122 -0.053 -0.711 0.058 -0.053 0.097
## satsfctn_bs -0.118 -0.038 -0.101 -0.086 0.157 -0.038 0.047 -0.072
## progress_bs 0.003 0.010 0.053 0.026 -0.057 0.027 -0.068 -0.104 -0.516